//package com.starbaba.system.schedule.service;
//
//import java.net.InetAddress;
//import java.net.UnknownHostException;
//
//import org.apache.commons.logging.Log;
//import org.apache.commons.logging.LogFactory;
//
//import com.starbaba.core.utils.SpringContextManager;
//import com.starbaba.system.schedule.constant.ScheduleConstant;
//import com.starbaba.system.syscode.service.SyscodeService;
//
//public class ScheduleServiceImpl implements ScheduleService {
//	private static Log log = LogFactory.getLog(ScheduleServiceImpl.class);
//	
//	// 获得Spring 注入的 SyscodeServiceImpl对象
//	private SyscodeService syscodeService;
//	public void setSyscodeService(SyscodeService syscodeService) {
//		this.syscodeService = syscodeService;
//	}
//	
//	/**
//	 * 检查当前服务器是否允许启动调度
//	 * @return
//	 * @throws Exception
//	 */
//	protected Boolean checkServer() throws Exception {
//		String IP = this.getHostIp();
//		String configIp = syscodeService.doFindSyscodeVOByTypeAndKind(
//				ScheduleConstant.SCHEDULE_SERVER_INFO, 
//				ScheduleConstant.SCHEDULE_SERVER_IP).getKindname();
//		return configIp.equals("*") || configIp.equals(IP);
//	}
//
//	/**
//	 * 启动调度服务
//	 */
//	@Override
//	public void startService() {	
//		try{
//			log.info("------------ 开始检查是否允许提供服务器  ------------");
//			if(this.checkServer()){
//				log.info("------------ 当前服务器允许提供调度服务器 ------------");
//				String configFile = syscodeService.doFindSyscodeVOByTypeAndKind(
//						ScheduleConstant.SCHEDULE_SERVER_INFO, 
//						ScheduleConstant.SCHEDULE_SERVER_CONFIG_FILE).getKindname();
//				SpringContextManager.loadBean(configFile);
//				SpringContextManager.getBean("scheduledFactoryBean"); 
//				log.info("------------ 已装载调度配置文件 ------------");
//			}
//		}catch(Exception ex){
//			log.error("-------------- 启动调度检查服务出现异常  --------------",ex);
//		}
//		log.info("------------ 检查完成  ------------");
//	}
//	
//	/**
//	 * 返回当前服务器IP
//	 * @return IP地址
//	 */
//	protected String getHostIp() {
//        try {
//            InetAddress a = InetAddress.getLocalHost();
//            return a.getHostAddress().toUpperCase();
//        } catch (UnknownHostException e) {
//            log.error(e.getMessage(), e);
//            return "N/A";
//        }
//    }
//
//}
